package com.ren.service.core.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ren.service.core.model.po.UserInfoPO;
import com.ren.service.core.model.vo.*;

/**
 * @author RenGaoshuai
 * @date 2023/8/8 10:20
 * @description
 */
public interface IUserInfoService {

    /**
     * 用户注册
     * @param reqVO
     * @return
     */
    void register(RegisterReqVO reqVO);

    /**
     *登录接口
     * @param reqVO 入参
     * @param remoteAddr IP地址
     * @return 用户对象（包含token）
     */
    LoginRespVO login(LoginReqVO reqVO, String remoteAddr);


    /**
     * 分页查询用户信息
     * @param pageParam
     * @param reqVO
     * @return
     */
    IPage<UserInfoPO> listPage(Page<UserInfoPO> pageParam, UserInfoQueryReqVO reqVO);


    /**
     * 用户的锁定与解锁
     * @param reqVO
     * @return
     */
    int lock(UserInfoLockReqVO reqVO);

    /**
     * 校验改手机号是否被注册
     * @param mobile
     * @return
     */
    boolean checkMobile(String mobile);
}
